Today, creating complex information systems such as those used for administrative purposes (e.g. for order processing, purchasing, customer service), requires a development process. Such a process comprises a series of phases, beginning with describing a task, involving specification, modeling, programming in a high-level language, translating the code to machine language (or interpreting it) and execution by programmable hardware. The development phases from task description to programming are carried out manually (with computer-supported stages where applicable). These phases require a high level of human effort and they are error-prone.
Since about 1979, software tools in the form of spreadsheet programs are known, which enable users to represent information in tabular form and to generate derived information by interpreting expressions (formulae). Using these tools, solutions for a broad spectrum of applications can be created through suitable configuration (of table structure and expression specifications) without requiring expensive programming. However, spreadsheet programs do not provide adequate structuring capabilities for complex information systems (e.g. order processing, purchasing, customer service). Thus, spreadsheet programs are only used for applications of lower complexity.